#pragma once

#ifndef _OGL_WINDOW_CONTROL
#define _OGL_WINDOW_CONTROL

#include "OGLIControl.h"
#include "OGLGlobals.h"

#include <gl/glew.h>
#include <gl/GLU.h>
#include <gl/glfw.h>

#include <string>
#include <vector>

class OGLWindowControl : public OGLIControl
{
private :

	OGLResult initWindow(void);

public :

	std::string windowName;
	int windowHeight, windowWidth;
	int oglVerMajor, oglVerMinor, fsaaSamples;
	int debugContext;
	bool enableFrameCounter;
	GLenum glDepthFunction, glCullFaceDirection;
	std::vector<int> glfwEnableFlags;	// Turn on GLFW_SYSTEM_KEYS at least. 
	std::vector<GLenum> glEnableFlags;	// Turn on GL_DEPTH_TEST at least.

	OGLWindowControl(void);
	~OGLWindowControl(void);

	OGLResult StartControl(void);
	OGLResult StopControl(void);

//	static void GLFWCALL windowResizeCallback(int width, int height);
};

#endif